<!DOCTYPE html>
<html lang="zh-CN">
<head>
	    <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;IE=7" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                    <title>程序员面试 - code123</title>                        <meta name="keywords" content="程序员面试" />
    <meta name="description" content="" />
    <meta name="viewport" content="initial-scale=1.0,user-scalable=no">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
    <link rel="Shortcut Icon" href="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2015/08/favicon.ico" type="image/x-icon" />
    <link rel="alternate" type="application/rss+xml" title="code123 &raquo; Feed" href="http://www.code123.cc/feed" />
<link rel="alternate" type="application/rss+xml" title="code123 &raquo; 评论Feed" href="http://www.code123.cc/comments/feed" />
<link rel="alternate" type="application/rss+xml" title="code123 &raquo; 程序员面试分类目录Feed" href="http://www.code123.cc/category/interview-carrier/feed" />
		<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"http:\/\/s.w.org\/images\/core\/emoji\/72x72\/","ext":".png","source":{"concatemoji":"http:\/\/www.code123.cc\/wp-includes\/js\/wp-emoji-release.min.js?ver=1462685583"}};
			!function(a,b,c){function d(a){var c=b.createElement("canvas"),d=c.getContext&&c.getContext("2d");return d&&d.fillText?(d.textBaseline="top",d.font="600 32px Arial","flag"===a?(d.fillText(String.fromCharCode(55356,56812,55356,56807),0,0),c.toDataURL().length>3e3):(d.fillText(String.fromCharCode(55357,56835),0,0),0!==d.getImageData(16,16,1,1).data[0])):!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g;c.supports={simple:d("simple"),flag:d("flag")},c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.simple&&c.supports.flag||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<style type="text/css">
img.wp-smiley,
img.emoji {
	display: inline !important;
	border: none !important;
	box-shadow: none !important;
	height: 1em !important;
	width: 1em !important;
	margin: 0 .07em !important;
	vertical-align: -0.1em !important;
	background: none !important;
	padding: 0 !important;
}
</style>
<link rel='stylesheet' id='dwqa-style-css'  href='css/style.css?ver=1462685583' type='text/css' media='all' />
<script type='text/javascript' src='http://cdn.staticfile.org/jquery/1.11.1/jquery.min.js?ver=1462685583'></script>
<script type='text/javascript' src='http://cdn.staticfile.org/jquery-migrate/1.2.1/jquery-migrate.min.js?ver=1462685583'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var CrayonSyntaxSettings = {"version":"2.6.5","is_admin":"0","ajaxurl":"http:\/\/www.code123.cc\/wp-admin\/admin-ajax.php","prefix":"crayon-","setting":"crayon-setting","selected":"crayon-setting-selected","changed":"crayon-setting-changed","special":"crayon-setting-special","orig_value":"data-orig-value","debug":""};
var CrayonSyntaxStrings = {"copy":"\u4f7f\u7528 %s \u590d\u5236\uff0c\u4f7f\u7528 %s \u7c98\u8d34\u3002","minimize":"Click To Expand Code"};
/* ]]> */
</script>
<script type='text/javascript' src='http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/plugins/crayon-syntax-highlighter/js/min/crayon.min.js?ver=1462685583'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var mirana = {"galleryEffect":"fxSoftScale","galleryInterval":"5","swf":"http:\/\/www.code123.cc\/wp-content\/themes\/Mirana\/static\/swf"};
/* ]]> */
</script>
<script type='text/javascript' src='http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/themes/Mirana/static/js/index.js?ver=1462685583'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var wpzan_ajax_url = "http:\/\/www.code123.cc\/wp-admin\/admin-ajax.php";
/* ]]> */
</script>
<script type='text/javascript' src='http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/plugins/wp-zan/static/js/wp-zan.js?ver=1462685583'></script>
<script type='text/javascript' src='http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/plugins/wp-favorite-posts/wpfp.js?ver=1462685583'></script>
		<style type="text/css">
			.wp-zan{
				color: !important
			}
			.wp-zan:hover{
				color: !important
			}
			.wp-zan.zaned{
				color: !important
			}
		</style>
	    </head>
<body class="archive category category-interview-carrier category-115">
<header id="header">
	<div class="center">
        		<a class="logo" href="http://www.code123.cc" alt="code123"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2015/08/logo3.png" alt="code123" /></a>
		<nav id="topnav" class="menu-menu1-container">
			<ul id="menu-menu1" class="menu">
                <li id="menu-item-1454" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-1454"><a href="index.html">首页</a></li>
                <li id="menu-item-269" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-269"><a href="trends.html">业界</a></li>
                <li id="menu-item-1600" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1600"><a href="startup.html">创业</a></li>
                <li id="menu-item-1450" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1450"><a href="interview-carrier.html">面试</a></li>
                <li id="menu-item-1451" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1451"><a href="java.html">Java</a></li>
                <li id="menu-item-1452" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1452"><a href="python.html">Python</a></li>
            </ul>
		</nav>       
 <div class="search right">
            <form class="search-form clearfix" method="get" action="http://www.code123.cc/">
                <input class="search-submit" type="submit" />
                <input class="search-text" name="s" type="text" placeholder="Search..." />
            </form>
        </div>
	</div>
</header>
	<div id="content">
        <div class="main">
            <div class="center">
                                    <!--div><center>
                      <a href="http://my.yizhihongxing.com/aff.php?aff=494" target="_blank"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2016/07/vpn.png"></a>
                    </center></div></br-->
                    <ul id="indexcat" class="clearfix">
                        <!--li>分类目录：</li-->
                        <li><a href="http://www.code123.cc" data-hover='所有'  >所有</a></li>
                        <li><a href="http://www.code123.cc/category/android" data-hover='Android'>Android</a></li><li><a href="http://www.code123.cc/category/django" data-hover='Django'>Django</a></li><li><a href="http://www.code123.cc/category/http" data-hover='HTTP'>HTTP</a></li><li><a href="http://www.code123.cc/category/ios" data-hover='iOS'>iOS</a></li><li><a href="http://www.code123.cc/category/it-carrier" data-hover='IT职场'>IT职场</a></li><li><a href="http://www.code123.cc/category/java" data-hover='Java'>Java</a></li><li><a href="http://www.code123.cc/category/javascript" data-hover='JavaScript'>JavaScript</a></li><li><a href="http://www.code123.cc/category/java-level02" data-hover='Java进阶'>Java进阶</a></li><li><a href="http://www.code123.cc/category/leetcode" data-hover='LeetCode'>LeetCode</a></li><li><a href="http://www.code123.cc/category/linux" data-hover='Linux'>Linux</a></li><li><a href="http://www.code123.cc/category/mysql" data-hover='MySQL'>MySQL</a></li><li><a href="http://www.code123.cc/category/php" data-hover='PHP'>PHP</a></li><li><a href="http://www.code123.cc/category/python" data-hover='Python'>Python</a></li><li><a href="http://www.code123.cc/category/redis" data-hover='Redis'>Redis</a></li><li><a href="http://www.code123.cc/category/ruby" data-hover='Ruby'>Ruby</a></li><li><a href="http://www.code123.cc/category/tutor-scalar" data-hover='Scala教程'>Scala教程</a></li><li><a href="http://www.code123.cc/category/spark" data-hover='Spark'>Spark</a></li><li><a href="http://www.code123.cc/category/tcp-ip" data-hover='TCP/IP协议'>TCP/IP协议</a></li><li><a href="http://www.code123.cc/category/web-dev" data-hover='Web开发'>Web开发</a></li><li><a href="http://www.code123.cc/category/wiki" data-hover='wiki'>wiki</a></li><li><a href="http://www.code123.cc/category/trends" data-hover='业界/资讯'>业界/资讯</a></li><li><a href="http://www.code123.cc/category/people" data-hover='人物'>人物</a></li><li><a href="http://www.code123.cc/category/startup" data-hover='创业'>创业</a></li><li><a href="http://www.code123.cc/category/bigdata" data-hover='大数据'>大数据</a></li><li><a href="http://www.code123.cc/category/math-programming" data-hover='学点数学'>学点数学</a></li><li><a href="http://www.code123.cc/category/tools" data-hover='实用工具'>实用工具</a></li><li><a href="http://www.code123.cc/category/funny" data-hover='有趣'>有趣</a></li><li><a href="http://www.code123.cc/category/architecture" data-hover='架构设计'>架构设计</a></li><li><a href="http://www.code123.cc/category/games-dev" data-hover='游戏开发'>游戏开发</a></li><li><a href="http://www.code123.cc/category/interview-carrier" class="current" data-hover='程序员面试'>程序员面试</a></li><li><a href="http://www.code123.cc/category/algorithm-datastruct" data-hover='算法/数据结构'>算法/数据结构</a></li><li><a href="http://www.code123.cc/category/experience" data-hover='经验分享'>经验分享</a></li><li><a href="http://www.code123.cc/category/network-program" data-hover='网络编程'>网络编程</a></li><li><a href="http://www.code123.cc/category/computer-inside" data-hover='计算机原理'>计算机原理</a></li><li><a href="http://www.code123.cc/category/design" data-hover='设计'>设计</a></li><li><a href="http://www.code123.cc/category/design-mode" data-hover='设计模式'>设计模式</a></li>                    </ul>
                                <ul class="articles clearfix">
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/2520.html" rel="bookmark" title="简历做好这一点，求职成功几率高几倍">
                简历做好这一点，求职成功几率高几倍            </a>
        </h2>
        <div class="post-content">
            有些人看了我「值乎」上的问题「求职简历做好这一点，拿到 Offer 几率高 80%」 的答案之后来跟我说很「坑」。
这么说吧，我觉得这个问题不止值 10 块钱，这个问题应该值 1000 块。
其实，写这个问题的时候我就知道，无论答案是什么，都会有人觉得「坑」，不值十块钱，他们其实需要的是一只「金手指」，点石成金，最好看完这个谜底之后就「嗖」的一下，一份钱多事少离家近的 Offer 砸在作为求职者的你的大脸上。
你现在可以省十块钱，我写这个问题只想告诉你，「要检查简历里的专业术语啊笨蛋」。
我看过无数份简历，但很少有人能把简历……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-2520" class="wp-zan" onclick="wpzan(2520, 0)" href="javascript:;"><span>2</span></a></div></li>
            <li><div class="postview">530</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/2520.html#comments"> 1</a></div></li>
        </ul>
    </li>
                                            
<li class="post post-width-thumbnail">
                <div class="post-thumbnail">
                <div class="overlay"><a href="http://www.code123.cc/2518.html" rel="bookmark" title="面试前做好这几点，求职成功率高几倍"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/themes/Mirana/static/images/view.png" alt="code123" /></a></div>
                <img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2016/03/hunter.png?imageView/1/w/320/h/200/q/100" alt="面试前做好这几点，求职成功率高几倍" width="320" height="200" />
            </div>
            <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/2518.html" rel="bookmark" title="面试前做好这几点，求职成功率高几倍">
                面试前做好这几点，求职成功率高几倍            </a>
        </h2>
        <div class="post-content">
            一生要面试多少回？才能不流泪；一生要流多少泪，才能不心碎。
这篇算是冯老师的番外篇吧。关于面试，我从这么几个主题去说说：求职类型……        </div>
    </div>
    </li>
                                            
<li class="post post-width-thumbnail">
                <div class="post-thumbnail">
                <div class="overlay"><a href="http://www.code123.cc/2514.html" rel="bookmark" title="面试时，如何向公司提问？"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/themes/Mirana/static/images/view.png" alt="code123" /></a></div>
                <img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2016/04/interview-02.jpg?imageView/1/w/320/h/200/q/100" alt="面试时，如何向公司提问？" width="320" height="200" />
            </div>
            <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/2514.html" rel="bookmark" title="面试时，如何向公司提问？">
                面试时，如何向公司提问？            </a>
        </h2>
        <div class="post-content">
            今天，我看到硅谷招聘经理Steve Buckley的一篇文章，正好探讨了同一件事的另一面：应聘者如何向公司提问。

很多人将面试看作一种单向选……        </div>
    </div>
    </li>
                                            
<li class="post post-width-thumbnail">
                <div class="post-thumbnail">
                <div class="overlay"><a href="http://www.code123.cc/1811.html" rel="bookmark" title="面试心得与总结(BAT、网易、蘑菇街)"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/themes/Mirana/static/images/view.png" alt="code123" /></a></div>
                <img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2015/08/interview-code123-cc-01.png?imageView/1/w/320/h/200/q/100" alt="面试心得与总结(BAT、网易、蘑菇街)" width="320" height="200" />
            </div>
            <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/1811.html" rel="bookmark" title="面试心得与总结(BAT、网易、蘑菇街)">
                面试心得与总结(BAT、网易、蘑菇街)            </a>
        </h2>
        <div class="post-content">
            之前实习的时候就想着写一篇面经，后来忙就给忘了，现在找完工作了，也是该静下心总结一下走过的路程了，我全盘托出，奉上这篇诚意之作，……        </div>
    </div>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/1685.html" rel="bookmark" title="Java线程面试题集锦">
                Java线程面试题集锦            </a>
        </h2>
        <div class="post-content">
            下面是我自己收集整理的Java线程相关的面试题，可以用它来好好准备面试。


1) 什么是线程？
线程是操作系统能够进行运算调度的最小单位，它被包含在进程之中，是进程中的实际运作单位。程序员可以通过它进行多处理器编程，你可以使用多线程对运算密集型任务提速。比如，如果一个线程完成一个任务要100毫秒，那么用十个线程完成该任务只需10毫秒。
2) 线程和进程有什么区别？
一个进程是一个独立(self contained)的运行环境，它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。线程是进程的子集，一个进程可以有很多……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-1685" class="wp-zan" onclick="wpzan(1685, 0)" href="javascript:;"><span>7</span></a></div></li>
            <li><div class="postview">824</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/1685.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/1669.html" rel="bookmark" title="40个Java集合面试问题和答案">
                40个Java集合面试问题和答案            </a>
        </h2>
        <div class="post-content">
            Java集合框架为Java编程语言的基础，也是Java面试中很重要的一个知识点。这里，我列出了一些关于Java集合的重要问题和答案。


1.Java集合框架是什么？说出一些集合框架的优点？
每种编程语言中都有集合，最初的Java版本包含几种集合类：Vector、Stack、HashTable和Array。随着集合的广泛使用，Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类，Java已经经历了很久。它还包括在Java并发包中，阻塞接口以及它们的实现。集合框架的部分优点如下：
（1）使用核心集合类降低开发成本，而……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-1669" class="wp-zan" onclick="wpzan(1669, 0)" href="javascript:;"><span>2</span></a></div></li>
            <li><div class="postview">1,207</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/1669.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/1667.html" rel="bookmark" title="Java高级开发工程师面试考纲">
                Java高级开发工程师面试考纲            </a>
        </h2>
        <div class="post-content">
            如果要应聘高级开发工程师职务，仅仅懂得Java的基础知识是远远不够的，还必须懂得常用数据结构、算法、网络、操作系统等知识。因此本文不会讲解具体的技术，笔者综合自己应聘各大公司的经历，整理了一份大公司对Java高级开发工程师职位的考核纲要，希望可以帮助到需要的人。


当前，市面上有《Java XX宝典》类似的图书，而且图书中的内容都着重在讲解Java最为基础的部分，最严重的是，里面有着大量错误的内容，极具误导性。另外，网上也有各种各样的Java面试题，很多也是着重在Java语言基础上。实际上，如果要应聘高级开发工程师职务，……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-1667" class="wp-zan" onclick="wpzan(1667, 0)" href="javascript:;"><span>1</span></a></div></li>
            <li><div class="postview">656</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/1667.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post post-width-thumbnail">
                <div class="post-thumbnail">
                <div class="overlay"><a href="http://www.code123.cc/1444.html" rel="bookmark" title="程序员面试中常见10大算法汇总"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/themes/Mirana/static/images/view.png" alt="code123" /></a></div>
                <img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2015/08/interview-10-algorithm-01.png?imageView/1/w/320/h/200/q/100" alt="程序员面试中常见10大算法汇总" width="320" height="200" />
            </div>
            <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/1444.html" rel="bookmark" title="程序员面试中常见10大算法汇总">
                程序员面试中常见10大算法汇总            </a>
        </h2>
        <div class="post-content">
            以下是在编程面试中排名前10的算法相关的概念，我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力，因此这份列……        </div>
    </div>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/982.html" rel="bookmark" title="近期的一些面试经历分享">
                近期的一些面试经历分享            </a>
        </h2>
        <div class="post-content">
            背景
自从2013年离开北京后，就没有在固定单位上班了。
期间捣鼓过一些东西，也挣了点小钱，日子也没有到过不下去非要找工作的地步。
只是觉得自身仍有不足，作为技术，还是想再开阔一点，再深刻一点，再专业一点。
也没有去刻意地投递简历，本来老婆怀孕，自己在家，时间比较多，所以就写写博客，所以会有一些来自私信的机会。
既然有机会，那就愉快地去追一下，本篇，就记录一下最近几个月的一些经历。
云XX
这个公司招聘全栈，要求精通编译、操作系统、计算机网络，要精通一门底层语言，比如汇编或者C，要精通一门高级语言，比如C++……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-982" class="wp-zan" onclick="wpzan(982, 0)" href="javascript:;"><span>3</span></a></div></li>
            <li><div class="postview">412</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/982.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/970.html" rel="bookmark" title="20.5 给出两个单词，找到它们的最短距离">
                20.5 给出两个单词，找到它们的最短距离            </a>
        </h2>
        <div class="post-content">
            题目
有一个很大的文本文件，里面包含许多英文单词。给出两个单词，找到它们的最短距离 (以它们之间隔了多少个单词计数)。你能在O(1)的时间内返回任意两个单词间的最短距离吗？ 你的解法空间复杂度是多少？
解答
先看一个例子，为了简单起见，我们假设文件里就只有以下两句话。然后， 我们现在来求is和name的最短距离。假设相邻的两个单词距离为1。


		
		
			
What is your name My name is Hawstein

			
				
					
				
					12
				
						What is your name My name is Hawstein&nbsp;
					
				
			
		


首……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-970" class="wp-zan" onclick="wpzan(970, 0)" href="javascript:;"><span>0</span></a></div></li>
            <li><div class="postview">202</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/970.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/969.html" rel="bookmark" title="20.4 写一个函数，计算0到n之间2的个数。">
                20.4 写一个函数，计算0到n之间2的个数。            </a>
        </h2>
        <div class="post-content">
            题目
写一个函数，计算0到n之间2的个数。
解答
最简单直观的方法就是对于0到n之间的数，一个个地去统计2在它们上出现的个数， 然后累加起来即可。求2在某个数上出现的次数需要O(logn)的时间，一共有n个数， 所以共需要O(nlogn)的时间。
代码如下：


		
		
			
int Count2(int n){
    int count = 0;
    while(n &gt; 0){
        if(n%10 == 2)
            ++count;
        n /= 10;
    }
    return count;
}

int Count2s1(int n){
    int count = 0;
    for(int i=0; i&lt;=n; ++i)
        count += Count……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-969" class="wp-zan" onclick="wpzan(969, 0)" href="javascript:;"><span>0</span></a></div></li>
            <li><div class="postview">188</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/969.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/967.html" rel="bookmark" title="20.3 写一个函数，随机地从大小为n的数组中选取m个整数">
                20.3 写一个函数，随机地从大小为n的数组中选取m个整数            </a>
        </h2>
        <div class="post-content">
            题目
写一个函数，随机地从大小为n的数组中选取m个整数。要求每个元素被选中的概率相等。
解答
这道题目和随机洗牌问题类似，只需要随机选取1个元素， 然后在剩下的元素里面随机选取下一个元素，不断这样操作即可。
这样做能保证每个元素选中的概率一样吗？也就是选中每个元素的概率都是1/n？ 答案是YES，让我们来做一下简单的计算。

选第1个元素：在n个中随机选，因此概率为1/n
选第2个元素：在剩下的n-1个中随机选：1/(n-1)，由于第1次没有选中它， 而是在另外n-1个中选：(n-1)/n，因此概率为：(n-1)/n * 1/(n-1) = 1/n
选第3个元素……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-967" class="wp-zan" onclick="wpzan(967, 0)" href="javascript:;"><span>0</span></a></div></li>
            <li><div class="postview">142</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/967.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/964.html" rel="bookmark" title="20.2 写一个随机洗牌函数">
                20.2 写一个随机洗牌函数            </a>
        </h2>
        <div class="post-content">
            题目
写一个随机洗牌函数。要求洗出的52!种组合都是等概率的。 也就是你洗出的一种组合的概率是1/(52!)。假设已经给你一个完美的随机数发生器。
解答
这是一道非常有名的面试题，及非常有名的算法——随机洗牌算法。
最直观的思路是什么？很简单，每次从牌堆中随机地拿一张出来。那么， 第一次拿有52种可能，拿完后剩下51张；第二次拿有51种可能，第三次拿有50种可能， …，一直这样随机地拿下去直到拿完最后1张，我们就从52!种可能中取出了一种排列， 这个排列对应的概率是1/(52!)，正好是题目所要求的。
接下来的问题是，如何写代码去实……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-964" class="wp-zan" onclick="wpzan(964, 0)" href="javascript:;"><span>1</span></a></div></li>
            <li><div class="postview">186</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/964.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/963.html" rel="bookmark" title="20.1 不能使用+号或其它算术运算符求两个数的和">
                20.1 不能使用+号或其它算术运算符求两个数的和            </a>
        </h2>
        <div class="post-content">
            题目
写一个Add函数求两个数的和，不能使用+号或其它算术运算符。
解答
为了解决这个问题，让我们来深入地思考一下，我们是如何去加两个数的。为了易于理解， 我们考虑10进制的情况。比如我们要算759 + 674，我们通常从最低位开始加， 考虑进位；然后加第二位，考虑进位…对于二进制，我们可以使用相同的方法， 每一位求和，然后考虑进位。
能把这个过程弄得更简单点吗？答案是YES，我们可以把求两个数的和分成两步， “加"与"进位"，看例子：

计算759 + 674，但不考虑进位，得到323。
计算759 + 674，只考虑进位，而不是去加每一位，得……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-963" class="wp-zan" onclick="wpzan(963, 0)" href="javascript:;"><span>1</span></a></div></li>
            <li><div class="postview">142</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/963.html#respond">0</a></div></li>
        </ul>
    </li>
                                            
<li class="post">
        <div class="post-body">
        <h2 class="post-title">
            <a href="http://www.code123.cc/960.html" rel="bookmark" title="19.11 设计一个算法，找到数组中所有和为指定值的整数对">
                19.11 设计一个算法，找到数组中所有和为指定值的整数对            </a>
        </h2>
        <div class="post-content">
            题目
设计一个算法，找到数组中所有和为指定值的整数对。
解答
时间复杂度O(n)的解法
我们可以用一个哈希表或数组或bitmap(后两者要求数组中的整数非负)来保存sum-x的值， 这样我们就只需要遍历数组两次即可找到和为指定值的整数对。这种方法需要O(n) 的辅助空间。如果直接用数组或是bitmap来做，辅助空间的大小与数组中的最大整数相关， 常常导致大量空间浪费。比如原数组中有5个数：1亿，2亿，3亿，4亿，5亿。sum为5亿， 那么我们将bitmap中的sum-x位置1，即第4亿位，第3亿位，第2亿位，第1亿位，第0位置1. 而其它位置都浪费了。
如果……        </div>
    </div>
            <ul class="postmeta clearfix">
            <li><div class="postzan"><a id="wp-zan-960" class="wp-zan" onclick="wpzan(960, 0)" href="javascript:;"><span>0</span></a></div></li>
            <li><div class="postview">114</div></li>
            <li><div class="postcomm"><a href="http://www.code123.cc/960.html#respond">0</a></div></li>
        </ul>
    </li>
                                    </ul>
                <!--div><center>
                      <a href="http://my.yizhihongxing.com/aff.php?aff=494" target="_blank"><img src="http://7xlqnq.com1.z0.glb.clouddn.com/wp-content/uploads/2016/07/vpn.png"></a>
                </center></div><br-->
                <nav class="pagenav clearfix">
                    <span class='page-numbers current'>1</span><a class='page-numbers' href='http://www.code123.cc/category/interview-carrier/page/2' title='第2页'>2</a><a class='page-numbers' href='http://www.code123.cc/category/interview-carrier/page/3' title='第3页'>3</a><a class='page-numbers' href='http://www.code123.cc/category/interview-carrier/page/4' title='第4页'>4</a><span class="page-numbers">...</span><a class='page-numbers' href='http://www.code123.cc/category/interview-carrier/page/9' title='第9页'>9</a><span class='right'><a class='page-numbers page-numbers-next' href='http://www.code123.cc/category/interview-carrier/page/2' title='下一页'>下一页</a></span>                </nav>
            </div>
        </div>
    </div>
<footer id="footer">
	<div class="sns">
		<a href="http://weibo.com/u/5603150440" target="_blank" rel="nofollow" class="weibo"><span>新浪微博</span></a><a href="http://www.zhihu.com/people/code123" target="_blank" rel="nofollow" class="zhihu"><span>知乎</span></a><a href="http://www.code123.cc/feed" target="_blank" rel="nofollow" class="rss"><span>订阅我</span></a>	</div>
	<div class="copyright">Copyright &copy; 2015 <a href="/">Code123</a> All Rights Reserved <a href="http://www.code123.cc/contact" rel="nofollow">Contact</a></div>
    <div class="statistics-div"><script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1253876422'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s95.cnzz.com/z_stat.php%3Fid%3D1253876422%26show%3Dpic' type='text/javascript'%3E%3C/script%3E"));</script></div>
</footer>

</body>
</html>

<!-- Dynamic page generated in 0.962 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2017-03-30 09:40:11 -->

<!-- Compression = gzip -->